Using spectral control in detecting touch input

ABSTRACT

Detecting a location of a touch input on a surface of a propagating medium is disclosed. A transmitter coupled to the propagating medium emits a signal. The signal is received using a receiver coupled to the propagating medium. The receiver is configured to receive the signal from the transmitter to at least in part detect the location of the touch input as indicated by an effect of the touch input on the signal. Spectral control of the signal is performed.

CROSS REFERENCE TO OTHER APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 14/033,325, entitled USING SPECTRAL CONTROL IN DETECTING TOUCHINPUT filed Sep. 20, 2013 which is incorporated herein by reference forall purposes.

BACKGROUND OF THE INVENTION

Various technologies have been used to detect a touch input on a displayarea. The most popular technologies today include capacitive andresistive touch detection technology. Using resistive touch technology,often a glass panel is coated with multiple conductive layers thatregister touches when physical pressure is applied to the layers toforce the layers to make physical contact. Using capacitive touchtechnology, often a glass panel is coated with material that can hold anelectrical charge sensitive to a human finger. By detecting the changein the electrical charge due to a touch, a touch location can bedetected. However, with resistive and capacitive touch detectiontechnologies, the glass screen is required to be coated with a materialthat reduces the clarity of the glass screen. Additionally, because theentire glass screen is required to be coated with a material,manufacturing and component costs can become prohibitively expensive aslarger screens are desired.

Another type of touch detection technology includes bending wavetechnology. One example includes the Elo Touch Systems Acoustic PulseRecognition, commonly called APR, manufactured by Elo Touch Systems of301 Constitution Drive, Menlo Park, Calif. 94025. The APR systemincludes transducers attached to the edges of a touchscreen glass thatpick up the sound emitted on the glass due to a touch. However, thesurface glass may pick up other external sounds and vibrations thatreduce the accuracy and effectiveness of the APR system to efficientlydetect a touch input. Another example includes the Surface AcousticWave-based technology, commonly called SAW, such as the Elo IntelliTouchPlus™ of Elo Touch Systems. The SAW technology sends ultrasonic waves ina guided pattern using reflectors on the touch screen to detect a touch.However, sending the ultrasonic waves in the guided pattern increasescosts and may be difficult to achieve. Detecting additional types ofinputs, such as multi-touch inputs, may not be possible or may bedifficult using SAW or APR technology. Therefore there exists a need fora better way to detect an input on a surface.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments of the invention are disclosed in the followingdetailed description and the accompanying drawings.

FIG. 1 is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s).

DETAILED DESCRIPTION

The invention can be implemented in numerous ways, including as aprocess; an apparatus; a system; a composition of matter; a computerprogram product embodied on a computer readable storage medium; and/or aprocessor, such as a processor configured to execute instructions storedon and/or provided by a memory coupled to the processor. In thisspecification, these implementations, or any other form that theinvention may take, may be referred to as techniques. In general, theorder of the steps of disclosed processes may be altered within thescope of the invention. Unless stated otherwise, a component such as aprocessor or a memory described as being configured to perform a taskmay be implemented as a general component that is temporarily configuredto perform the task at a given time or a specific component that ismanufactured to perform the task. As used herein, the term ‘processor’refers to one or more devices, circuits, and/or processing coresconfigured to process data, such as computer program instructions.

A detailed description of one or more embodiments of the invention isprovided below along with accompanying figures that illustrate theprinciples of the invention. The invention is described in connectionwith such embodiments, but the invention is not limited to anyembodiment. The scope of the invention is limited only by the claims andthe invention encompasses numerous alternatives, modifications andequivalents. Numerous specific details are set forth in the followingdescription in order to provide a thorough understanding of theinvention. These details are provided for the purpose of example and theinvention may be practiced according to the claims without some or allof these specific details. For the purpose of clarity, technicalmaterial that is known in the technical fields related to the inventionhas not been described in detail so that the invention is notunnecessarily obscured.

Detecting a location of a touch input is disclosed. For example, a usertouch input on a glass surface of a display screen is detected. In someembodiments, a transmitter coupled to the propagating medium emits asignal to be propagated through the propagating medium. For example, asignal such as an acoustic or ultrasonic signal is propagated freelythrough the propagating medium with a touch input surface from thetransmitter coupled to the propagating medium. A receiver coupled to thepropagating medium receives the signal from the transmitter to at leastin part detect the location of the touch input as indicated by theeffect of the touch input on the signal. For example, when the surfaceof the propagating medium is touched, the emitted signal propagatingthrough the propagating medium is disturbed (e.g., the touch causes aninterference with the propagated signal). In some embodiments, byprocessing the received signals and comparing it against a correspondingexpected, a location on the surface associated with the touch input isat least in part determined.

When attempting to propagate signal through a medium such as glass inorder to detect touch inputs on the medium, the range of frequenciesthat may be utilized in the transmitted signal determines the bandwidthrequired for the signal as well as the propagation mode of the mediumexcited by the signal and noise of the signal.

With respect to bandwidth, if the signal includes more frequencycomponents than necessary to achieve a desired function, then the signalis consuming more bandwidth than necessary, leading to wasted resourceconsumption and slower processing times.

With respect to the propagation modes of the medium, a propagationmedium such as a glass likes to propagate a signal (e.g., anultrasonic/sonic signal) in certain propagation modes. For example, inA0 propagation mode of glass, the propagated signal travels in waves upand down perpendicular to a surface of the glass (e.g., by bending theglass) whereas in S0 propagation mode of glass, the propagated signaltravels in waves up and down parallel to the glass (e.g., by compressingand expanding the glass). A0 mode is desired over S0 mode in touchdetection because a touch input contact on a glass surface disturbs theperpendicular bending wave of the A0 mode and the touch input does notsignificantly disturb the parallel compression waves of the S0 mode. Theexample glass medium has higher order propagation modes such as A1 modeand S1 mode that become excited with different frequencies of thepropagated signals.

With respect to the noise of the signal, if the propagated signal is inthe audio frequency range of humans, a human user would be able to hearthe propagated signal that may detract from the user's user experience.If the propagated signal included frequency components that excitedhigher order propagation modes of the propagating medium, the signal maycreate undesirable noise within the propagating medium that makesdetection of touch input disturbances of the propagated signal difficultto achieve.

In some embodiments, the transmitter performs spectral control of thesignal. In some embodiments, performing spectral control on the signalincludes controlling the frequencies included in the signal. In order toperform spectral control, a windowing function (e.g., Hanning window,raised cosine window, etc.) and/or amplitude modulation (e.g., signalsideband modulation, vestigial sideband modulation, etc.) may beutilized. In some embodiments, spectral control is performed to attemptto only excite A0 propagation mode of the propagation medium. In someembodiments, spectral control is performed to limit the frequency rangeof the propagated signal to be within 50 kHz to 500 kHz.

In various embodiments, the touch input includes a physical contact to asurface using a human finger, pen, pointer, stylus, and/or any otherbody parts or objects that can be used to contact or disturb thesurface. In some embodiments, the touch input includes an input gestureand/or a multi-touch input. In some embodiments, the received signal isused to determine one or more of the following associated with a touchinput: a gesture, a coordinate position, a time, a time frame, adirection, a velocity, a force magnitude, a proximity magnitude, apressure, a size, and other measurable or derived parameters. In someembodiments, by detecting disturbances of a freely propagated signal,touch input detection technology can be applied to larger surfaceregions with less or no additional cost due to a larger surface regionas compared to certain previous touch detection technologies.Additionally, the optical transparency of a touch screen may not have tobe affected as compared to resistive and capacitive touch technologies.Merely by way of example, the touch detection described herein can beapplied to a variety of objects such as a kiosk, an ATM, a computingdevice, an entertainment device, a digital signage apparatus, a cellphone, a tablet computer, a point of sale terminal, a food andrestaurant apparatus, a gaming device, a casino game and application, apiece of furniture, a vehicle, an industrial application, a financialapplication, a medical device, an appliance, and any other objects ordevices having surfaces.

FIG. 1 is a block diagram illustrating an embodiment of a system fordetecting a touch input surface disturbance. In some embodiments, thesystem shown in FIG. 1 is included in a kiosk, an ATM, a computingdevice, an entertainment device, a digital signage apparatus, a cellphone, a tablet computer, a point of sale terminal, a food andrestaurant apparatus, a gaming device, a casino game and application, apiece of furniture, a vehicle, an industrial application, a financialapplication, a medical device, an appliance, and any other objects ordevices having surfaces. Propagating signal medium 102 is coupled totransmitters 104, 106, 108, and 110 and receivers/sensors 112, 114, 116,and 118. The locations where transmitters 104, 106, 108, and 110 andsensors 112, 114, 116, and 118 have been coupled to propagating signalmedium 102, as shown in FIG. 1, are merely an example. Otherconfigurations of transmitter and sensor locations may exist in variousembodiments. Although FIG. 1 shows sensors located adjacent totransmitters, sensors may be located apart from transmitters in otherembodiments. In some embodiments, a single transducer is used as both atransmitter and a sensor. In various embodiments, the propagating mediumincludes one or more of the following: panel, table, glass, screen,door, floor, whiteboard, plastic, wood, steel, metal, semiconductor,insulator, conductor, and any medium that is able to propagate anacoustic or ultrasonic signal. For example, medium 102 is glass of adisplay screen. A first surface of medium 102 includes a surface areawhere a user may touch to provide a selection input and a substantiallyopposite surface of medium 102 is coupled to the transmitters andsensors shown in FIG. 1. In various embodiments, a surface of medium 102is substantially flat, curved, or combinations thereof and may beconfigured in a variety of shapes such as rectangular, square, oval,circular, trapezoidal, annular, or any combination of these, and thelike.

Examples of transmitters 104, 106, 108, and 110 include piezoelectrictransducers, electromagnetic transducers, transmitters, sensors, and/orany other transmitters and transducers capable of propagating a signalthrough medium 102. Examples of sensors 112, 114, 116, and 118 includepiezoelectric transducers, electromagnetic transducers, laser vibrometertransmitters, and/or any other sensors and transducers capable ofdetecting a signal on medium 102. In some embodiments, the transmittersand sensors shown in FIG. 1 are coupled to medium 102 in a manner thatallows a user's input to be detected in a predetermined region of medium102. Although four transmitters and four sensors are shown, any numberof transmitters and any number of sensors may be used in otherembodiments. For example, two transmitters and three sensors may beused. In some embodiments, a single transducer acts as both atransmitter and a sensor. For example, transmitter 104 and sensor 112represent a single piezoelectric transducer. In the example shown,transmitters 104, 106, 108, and 110 each may propagate a signal throughmedium 102. A signal emitted by a transmitter is distinguishable fromanother signal emitted by another transmitter. In order to distinguishthe signals, a phase of the signals (e.g., code division multiplexing),a frequency range of the signals (e.g., frequency divisionmultiplexing), or a timing of the signals (e.g., time divisionmultiplexing) may be varied. One or more of sensors 112, 114, 116, and118 receive the propagated signals. In another embodiment, thetransmitters/sensors in FIG. 1 are attached to a flexible cable coupledto medium 102 via an encapsulant and/or glue material and/or fasteners.

Touch detector 120 is connected to the transmitters and sensors shown inFIG. 1. In some embodiments, detector 120 includes one or more of thefollowing: an integrated circuit chip, a printed circuit board, aprocessor, and other electrical components and connectors. Detector 120determines and sends signals to be propagated by transmitters 104, 106,108, and 110. Detector 120 also receives the signals detected by sensors112, 114, 116, and 118. The received signals are processed by detector120 to determine whether a disturbance associated with a user input hasbeen detected at a location on a surface of medium 102 associated withthe disturbance. Detector 120 is in communication with applicationsystem 122. Application system 122 uses information provided by detector120. For example, application system 122 receives from detector 120 acoordinate associated with a user touch input that is used byapplication system 122 to control a software application of applicationsystem 122. In some embodiments, application system 122 includes aprocessor and/or memory/storage. In other embodiments, detector 120 andapplication system 122 are at least in part included/processed in asingle processor. An example of data provided by detector 120 toapplication system 122 includes one or more of the following associatedwith a user indication: a location coordinate of a surface of medium102, a gesture, simultaneous user indications (e.g., multi-touch input),a time, a status, a direction, a velocity, a force magnitude, aproximity magnitude, a pressure, a size, and other measurable or derivedinformation.

FIG. 2 is a block diagram illustrating an embodiment of a system fordetecting a touch input. In some embodiments, touch detector 202 isincluded in touch detector 120 of FIG. 1. In some embodiments, thesystem of FIG. 2 is integrated in an integrated circuit chip. Touchdetector 202 includes system clock 204 that provides a synchronoussystem time source to one or more other components of detector 202.Controller 210 controls data flow and/or commands between microprocessor206, interface 208, DSP engine 220, and signal generator 212. In someembodiments, microprocessor 206 processes instructions and/orcalculations that can be used to program software/firmware and/orprocess data of detector 202. In some embodiments, a memory is coupledto microprocessor 206 and is configured to provide microprocessor 206with instructions.

Signal generator 212 generates signals to be used to propagate signalssuch as signals propagated by transmitters 104, 106, 108, and 110 ofFIG. 1. For example, signal generator 212 generates pseudorandom binarysequence signals that are converted from digital to analog signals.Different signals (e.g., a different signal for each transmitter) may begenerated by signal generator 212 by varying a phase of the signals(e.g., code division multiplexing), a frequency range of the signals(e.g., frequency division multiplexing), or a timing of the signals(e.g., time division multiplexing). In some embodiments, spectralcontrol (e.g., signal frequency range control) of the signal generatedby signal generator 212 is performed. For example, microprocessor 206,DSP engine 220, and/or signal generator 212 determines a windowingfunction and/or amplitude modulation to be utilized to control thefrequencies of the signal generated by signal generator 212. Examples ofthe windowing function include a Hanning window and raised cosinewindow. Examples of the amplitude modulation include signal sidebandmodulation and vestigial sideband modulation. In some embodiments, thedetermined windowing function may be utilized by signal generator 212 togenerate a signal to be modulated to a carrier frequency. The carrierfrequency may be selected such that the transmitted signal is anultrasonic signal. For example, the transmitted signal to be propagatedthrough a propagating medium is desired to be an ultrasonic signal tominimize undesired interference with sonic noise and minimize excitationof undesired propagation modes of the propagating medium. The modulationof the signal may be performed using a type of amplitude modulation suchas signal sideband modulation and vestigial sideband modulation toperform spectral of the signal. The modulation may be performed bysignal generator 212 and/or driver 214. Driver 214 receives the signalfrom generator 212 and drives one or more transmitters, such astransmitters 104, 106, 108, and 110 of FIG. 1, to propagate signalsthrough a medium.

A signal detected from a sensor such as sensor 112 of FIG. 1 is receivedby detector 202 and signal conditioner 216 conditions (e.g., filters)the received analog signal for further processing. For example, signalconditioner 216 receives the signal outputted by driver 214 and performsecho cancellation of the signal received by signal conditioner 216. Theconditioned signal is converted to a digital signal by analog-to-digitalconverter 218. The converted signal is processed by digital signalprocessor engine 220. For example, DSP engine 220 separates componentscorresponding to different signals propagated by different transmittersfrom the received signal and each component is correlated against areference signal. The result of the correlation may be used bymicroprocessor 206 to determine a location associated with a user touchinput. For example, microprocessor 206 compares relative differences ofdisturbances detected in signals originating from different transmittersand/or received at different receivers/sensors to determine thelocation.

In some embodiments, DSP engine 220 correlates the converted signalagainst a reference signal to determine a time domain signal thatrepresents a time delay caused by a touch input on a propagated signal.In some embodiments, DSP engine 220 performs dispersion compensation.For example, the time delay signal that results from correlation iscompensated for dispersion in the touch input surface medium andtranslated to a spatial domain signal that represents a physicaldistance traveled by the propagated signal disturbed by the touch input.In some embodiments, DSP engine 220 performs base pulse correlation. Forexample, the spatial domain signal is filtered using a match filter toreduce noise in the signal. A result of DSP engine 220 may be used bymicroprocessor 206 to determine a location associated with a user touchinput. For example, microprocessor 206 determines a hypothesis locationwhere a touch input may have been received and calculates an expectedsignal that is expected to be generated if a touch input was received atthe hypothesis location and the expected signal is compared with aresult of DSP engine 220 to determine whether a touch input was providedat the hypothesis location.

Interface 208 provides an interface for microprocessor 206 andcontroller 210 that allows an external component to access and/orcontrol detector 202. For example, interface 208 allows detector 202 tocommunicate with application system 122 of FIG. 1 and provides theapplication system with location information associated with a usertouch input.

FIG. 3 is a flow chart illustrating an embodiment of a process forcalibrating and validating touch detection. In some embodiments, theprocess of FIG. 3 is used at least in part to calibrate and validate thesystem of FIG. 1 and/or the system of FIG. 2. At 302, locations ofsignal transmitters and sensors with respect to a surface aredetermined. For example, locations of transmitters and sensors shown inFIG. 1 are determined with respect to their location on a surface ofmedium 102. In some embodiments, determining the locations includesreceiving location information. In various embodiments, one or more ofthe locations may be fixed and/or variable.

At 304, signal transmitters and sensors are calibrated. In someembodiments, calibrating the transmitter includes calibrating acharacteristic of a signal driver and/or transmitter (e.g., strength).In some embodiments, calibrating the sensor includes calibrating acharacteristic of a sensor (e.g., sensitivity). In some embodiments, thecalibration of 304 is performed to optimize the coverage and improvesignal-to-noise transmission/detection of a signal (e.g., acoustic orultrasonic) to be propagated through a medium and/or a disturbance to bedetected. For example, one or more components of the system of FIG. 1and/or the system of FIG. 2 are tuned to meet a signal-to-noiserequirement. In some embodiments, the calibration of 304 depends on thesize and type of a transmission/propagation medium and geometricconfiguration of the transmitters/sensors. In some embodiments, thecalibration of step 304 includes detecting a failure or aging of atransmitter or sensor. In some embodiments, the calibration of step 304includes cycling the transmitter and/or receiver. For example, toincrease the stability and reliability of a piezoelectric transmitterand/or receiver, a burn-in cycle is performed using a burn-in signal. Insome embodiments, the step of 304 includes configuring at least onesensing device within a vicinity of a predetermined spatial region tocapture an indication associated with a disturbance using the sensingdevice. The disturbance is caused in a selected portion of the inputsignal corresponding to a selection portion of the predetermined spatialregion.

At 306, surface disturbance detection is calibrated. In someembodiments, a test signal is propagated through a medium such as medium102 of FIG. 1 to determine an expected sensed signal when no disturbancehas been applied. In some embodiments, a test signal is propagatedthrough a medium to determine a sensed signal when one or morepredetermined disturbances (e.g., predetermined touch) are applied at apredetermined location. Using the sensed signal, one or more componentsmay be adjusted to calibrate the disturbance detection. In someembodiments, the test signal is used to determine a signal that can belater used to process/filter a detected signal disturbed by a touchinput.

In some embodiments, data determined using one or more steps of FIG. 3is used to determine data (e.g., formula, variable, coefficients, etc.)that can be used to calculate an expected signal that would result whena touch input is provided at a specific location on a touch inputsurface. For example, one or more predetermined test touch disturbancesare applied at one or more specific locations on the touch input surfaceand a test propagating signal that has been disturbed by the test touchdisturbance is used to determine the data (e.g., transmitter/sensorparameters) that is to be used to calculate an expected signal thatwould result when a touch input is provided at the one or more specificlocations.

At 308, a validation of a touch detection system is performed. Forexample, the system of FIG. 1 and/or FIG. 2 is tested usingpredetermined disturbance patterns to determine detection accuracy,detection resolution, multi-touch detection, and/or response time. Ifthe validation fails, the process of FIG. 3 may be at least in partrepeated and/or one or more components may be adjusted before performinganother validation.

FIG. 4 is a flow chart illustrating an embodiment of a process fordetecting a user touch input. In some embodiments, the process of FIG. 4is at least in part implemented on touch detector 120 of FIG. 1 and/ortouch detector 202 of FIG. 2.

At 402, a signal that can be used to propagate an active signal througha surface region is sent. In some embodiments, sending the signalincludes driving (e.g., using driver 214 of FIG. 2) a transmitter suchas a transducer (e.g., transmitter 104 of FIG. 1) to propagate an activesignal (e.g., acoustic or ultrasonic) through a propagating medium withthe surface region. In some embodiments, the signal includes a sequenceselected to optimize autocorrelation (e.g., resulting in narrow/shortpeaks) of the signal. For example, the signal includes a Zadoff-Chusequence. In some embodiments, the signal includes a pseudorandom binarysequence with or without modulation. In some embodiments, the propagatedsignal is an acoustic signal. In some embodiments, the propagated signalis an ultrasonic signal (e.g., outside the range of human hearing). Forexample, the propagated signal is a signal above 20 kHz (e.g., withinthe range between 80 kHz to 100 kHz). In other embodiments, thepropagated signal may be within the range of human hearing. In someembodiments, by using the active signal, a user input on or near thesurface region can be detected by detecting disturbances in the activesignal when it is received by a sensor on the propagating medium. Byusing an active signal rather than merely listening passively for a usertouch indication on the surface, other vibrations and disturbances thatare not likely associated with a user touch indication can be moreeasily discerned/filtered out. In some embodiments, the active signal isused in addition to receiving a passive signal from a user input todetermine the user input.

When attempting to propagate signal through a medium such as glass inorder to detect touch inputs on the medium, the range of frequenciesthat may be utilized in the transmitted signal determines the bandwidthrequired for the signal as well as the propagation mode of the mediumexcited by the signal and noise of the signal.

With respect to bandwidth, if the signal includes more frequencycomponents than necessary to achieve a desired function, then the signalis consuming more bandwidth than necessary, leading to wasted resourceconsumption and slower processing times.

With respect to the propagation modes of the medium, a propagationmedium such as a glass likes to propagate a signal (e.g., anultrasonic/sonic signal) in certain propagation modes. For example, inthe A0 propagation mode of glass the propagated signal travels in wavesup and down perpendicular to a surface of the glass (e.g., by bendingthe glass) whereas in the S0 propagation mode of glass the propagatedsignal travels in waves up and down parallel to the glass (e.g., bycompressing and expanding the glass). A0 mode is desired over S0 mode intouch detection because a touch input contact on a glass surfacedisturbs the perpendicular bending wave of the A0 mode and the touchinput does not significantly disturb the parallel compression waves ofthe S0 mode. The example glass medium has higher order propagation modessuch as A1 mode and S1 mode that become excited with differentfrequencies of the propagated signals.

With respect to the noise of the signal, if the propagated signal is inthe audio frequency range of humans, a human user would be able to hearthe propagated signal and may detract from the user's user experience.If the propagated signal included frequency components that excitedhigher order propagation modes of the propagating medium, the signal maycreate undesirable noise within the propagating medium that makesdetection of touch input disturbances of the propagated signal difficultto achieve.

In some embodiments, the sending the signal includes performing spectralcontrol of the signal. In some embodiments, performing spectral controlon the signal includes controlling the frequencies included in thesignal. In order to perform spectral control, a windowing function(e.g., Hanning window, raised cosine window, etc.) and/or amplitudemodulation (e.g., signal sideband modulation, vestigial sidebandmodulation, etc.) may be utilized. In some embodiments, spectral controlis performed to attempt to only excite A0 propagation mode of thepropagation medium. In some embodiments, spectral control is performedto limit the frequency range of the propagated signal to be within 50kHz to 250 kHz.

In some embodiments, the sent signal includes a pseudorandom binarysequence. The binary sequence may be represented using a square pulse.However, modulated signal of the square pulse includes a wide range offrequency components due to the sharp square edges of the square pulse.In order to efficiently transmit the pseudorandom binary sequence, it isdesirable to “smooth out” sharp edges of the binary sequence signal byutilizing a shaped pulse. A windowing function may be utilized to“smooth out” the sharp edges and reduce the frequency range of thesignal. A windowing function such as Hanning window and/or raised cosinewindow may be utilized. In some embodiments, the type and/or one or moreparameters of the windowing function is determined based at least inpart on a property of a propagation medium such as medium 102 of FIG. 1.For example, information about propagation modes and associatedfrequencies of the propagation medium are utilized to select the typeand/or parameter(s) of the windowing function (e.g., to excite desiredpropagation mode and not excite undesired propagation mode). In someembodiments, a type of propagation medium is utilized to select the typeand/or parameter(s) of the windowing function. In some embodiments, adispersion coefficient, a size, a dimension, and/or a thickness of thepropagation medium is utilized to select the type and/or parameter(s) ofthe windowing function. In some embodiments, a property of a transmitteris utilized to select the type and/or parameter(s) of the windowingfunction.

In some embodiments, sending the signal includes modulating (e.g.,utilize amplitude modulation) the signal. For example, the desiredbaseband signal (e.g., a pseudorandom binary sequence signal) is desiredto be transmitted at a carrier frequency (e.g., ultrasonic frequency).In this example, the amplitude of the signal at the carrier frequencymay be varied to send the desired baseband signal (e.g., utilizingamplitude modulation). However, traditional amplitude modulation (e.g.,utilizing double-sideband modulation) produces an output signal that hastwice the frequency bandwidth of the original baseband signal.Transmitting this output signal consumes resources that otherwise do nothave to be utilized. In some embodiments, single-sideband modulation isutilized. In some embodiments, in single-sideband modulation, the outputsignal utilizes half of the frequency bandwidth of double-sidebandmodulation by not utilizing a redundant second sideband included in thedouble-sideband modulated signal. In some embodiments, vestigialsideband modulation is utilized. For example, a portion of one of theredundant sidebands is effectively removed from a correspondingdouble-sideband modulated signal to form a vestigial sideband signal. Insome embodiments, double-sideband modulation is utilized.

In some embodiments, sending the signal includes determining the signalto be transmitted by a transmitter such that the signal isdistinguishable from other signal(s) transmitted by other transmitters.In some embodiments, sending the signal includes determining a phase ofthe signal to be transmitted (e.g., utilize code divisionmultiplexing/CDMA). For example, an offset within a pseudorandom binarysequence to be transmitted is determined. In this example, eachtransmitter (e.g., transmitters 104, 106, 108, and 110 of FIG. 1)transmits a signal with the same pseudorandom binary sequence but with adifferent phase/offset. The signal offset/phase difference between thesignals transmitted by the transmitters may be equally spaced (e.g.,64-bit offset for each successive signal) or not equally spaced (e.g.,different offset signals). The phase/offset between the signals may beselected such that it is long enough to reliably distinguish betweendifferent signals transmitted by different transmitters. In someembodiments, the signal is selected such that the signal isdistinguishable from other signals transmitted and propagated throughthe medium. In some embodiments, the signal is selected such that thesignal is orthogonal to other signals (e.g., each signal orthogonal toeach other) transmitted and propagated through the medium.

In some embodiments, sending the signal includes determining a frequencyof the signal to be transmitted (e.g., utilize frequency divisionmultiplexing/FDMA). For example, a frequency range to be utilized forthe signal is determined. In this example, each transmitter (e.g.,transmitters 104, 106, 108, and 110 of FIG. 1) transmits a signal in adifferent frequency range as compared to signals transmitted by othertransmitters. The range of frequencies that can be utilized by thesignals transmitted by the transmitters is divided among thetransmitters. In some cases if the range of frequencies that can beutilized by the signals is small, it may be difficult to transmit all ofthe desired different signals of all the transmitters. Thus the numberof transmitters that can be utilized with frequency divisionmultiplexing/FDMA may be smaller than can be utilized with code divisionmultiplexing/CDMA.

In some embodiments, sending the signal includes determining a timing ofthe signal to be transmitted (e.g., utilize time divisionmultiplexing/TDMA). For example, a time when the signal should betransmitted is determined. In this example, each transmitter (e.g.,transmitters 104, 106, 108, and 110 of FIG. 1) transmits a signal indifferent time slots as compared to signals transmitted by othertransmitters. This may allow the transmitters to transmit signals in around-robin fashion such that only one transmitter isemitting/transmitting at one time. A delay period may be insertedbetween periods of transmission of different transmitters to allow thesignal of the previous transmitter to sufficiently dissipate beforetransmitting a new signal of the next transmitter. In some cases, timedivision multiplexing/TDMA may be difficult to utilize in cases wherefast detection of touch input is desired because time divisionmultiplexing/TDMA slows down the speed of transmission/detection ascompared to code division multiplexing/CDMA.

At 404, the active signal that has been disturbed by a disturbance ofthe surface region is received. The disturbance may be associated with auser touch indication. In some embodiments, the disturbance causes theactive signal that is propagating through a medium to be attenuatedand/or delayed. In some embodiments, the disturbance in a selectedportion of the active signal corresponds to a location on the surfacethat has been indicated (e.g., touched) by a user.

At 406, the received signal is processed to at least in part determine alocation associated with the disturbance. In some embodiments,determining the location includes extracting a desired signal from thereceived signal at least in part by removing or reducing undesiredcomponents of the received signal such as disturbances caused byextraneous noise and vibrations not useful in detecting a touch input.In some embodiments, components of the received signal associated withdifferent signals of different transmitters are separated. For example,different signals originating from different transmitters are isolatedfrom other signals of other transmitters for individual processing. Insome embodiments, determining the location includes comparing at least aportion of the received signal (e.g., signal component from a singletransmitter) to a reference signal (e.g., reference signal correspondingto the transmitter signal) that has not been affected by thedisturbance. The result of the comparison may be used with a result ofother comparisons performed using the reference signal and othersignal(s) received at a plurality of sensors.

In some embodiments, receiving the received signal and processing thereceived signal are performed on a periodic interval. For example, thereceived signal is captured in 5 ms intervals and processed. In someembodiments, determining the location includes extracting a desiredsignal from the received signal at least in part by removing or reducingundesired components of the received signal such as disturbances causedby extraneous noise and vibrations not useful in detecting a touchinput. In some embodiments, determining the location includes processingthe received signal and comparing the processed received signal with acalculated expected signal associated with a hypothesis touch contactlocation to determine whether a touch contact was received at thehypothesis location of the calculated expected signal. Multiplecomparisons may be performed with various expected signals associatedwith different hypothesis locations until the expected signal that bestmatches the processed received signal is found and the hypothesislocation of the matched expected signal is identified as the touchcontact location(s) of a touch input. For example, signals received bysensors (e.g., sensors 112, 114, 116, and 118 of FIG. 1) from varioustransmitters (e.g., transmitters 104, 106, 108, and 110 of FIG. 1) arecompared with corresponding expected signals to determine a touch inputlocation (e.g., single or multi-touch locations) that minimizes theoverall difference between all respective received and expected signals.

The location, in some embodiments, is a location (e.g., a locationcoordinate) on the surface region where a user has provided a touchinput. In addition to determining the location, one or more of thefollowing information associated with the disturbance may be determinedat 406: a gesture, simultaneous user indications (e.g., multi-touchinput), a time, a status, a direction, a velocity, a force magnitude, aproximity magnitude, a pressure, a size, and other measurable or derivedinformation. In some embodiments, the location is not determined at 406if a location cannot be determined using the received signal and/or thedisturbance is determined to be not associated with a user input.Information determined at 406 may be provided and/or outputted.

Although FIG. 4 shows receiving and processing an active signal that hasbeen disturbed, in some embodiments, a received signal has not beendisturbed by a touch input and the received signal is processed todetermine that a touch input has not been detected. An indication that atouch input has not been detected may be provided/outputted.

FIG. 5 is a flow chart illustrating an embodiment of a process fordetermining a location associated with a disturbance on a surface. Insome embodiments, the process of FIG. 5 is included in 406 of FIG. 4.The process of FIG. 5 may be implemented in touch detector 120 of FIG. 1and/or touch detector 202 of FIG. 2. In some embodiments, at least aportion of the process of FIG. 5 is repeated for each combination oftransmitter and sensor pair. For example, for each active signaltransmitted by a transmitter (e.g., transmitted by transmitter 104, 106,108, or 110 of FIG. 1), at least a portion of the process of FIG. 5 isrepeated for each sensor (e.g., sensors 112, 114, 116, and 118 ofFIG. 1) receiving the active signal. In some embodiments, the process ofFIG. 5 is performed periodically (e.g., 5 ms periodic interval).

At 502, a received signal is conditioned. In some embodiments, thereceived signal is a signal including a pseudorandom binary sequencethat has been freely propagated through a medium with a surface that canbe used to receive a user input. For example, the received signal is thesignal that has been received at 404 of FIG. 4. In some embodiments,conditioning the signal includes filtering or otherwise modifying thereceived signal to improve signal quality (e.g., signal-to-noise ratio)for detection of a pseudorandom binary sequence included in the receivedsignal and/or user touch input. In some embodiments, conditioning thereceived signal includes filtering out from the signal extraneous noiseand/or vibrations not likely associated with a user touch indication.

At 504, an analog to digital signal conversion is performed on thesignal that has been conditioned at 502. In various embodiments, anynumber of standard analog to digital signal converters may be used.

At 506, a time domain signal capturing a received signal time delaycaused by a touch input disturbance is determined. In some embodiments,determining the time domain signal includes correlating the receivedsignal (e.g., signal resulting from 504) to locate a time offset in theconverted signal (e.g., perform pseudorandom binary sequencedeconvolution) where a signal portion that likely corresponds to areference signal (e.g., reference pseudorandom binary sequence that hasbeen transmitted through the medium) is located. For example, a resultof the correlation can be plotted as a graph of time within the receivedand converted signal (e.g., time-lag between the signals) vs. a measureof similarity. In some embodiments, performing the correlation includesperforming a plurality of correlations. For example, a coarsecorrelation is first performed then a second level of fine correlationis performed. In some embodiments, a baseline signal that has not beendisturbed by a touch input disturbance is removed in the resulting timedomain signal. For example, a baseline signal (e.g., determined at 306of FIG. 3) representing a measured signal (e.g., a baseline time domainsignal) associated with a received active signal that has not beendisturbed by a touch input disturbance is subtracted from a result ofthe correlation to further isolate effects of the touch inputdisturbance by removing components of the steady state baseline signalnot affected by the touch input disturbance.

At 508, the time domain signal is converted to a spatial domain signal.In some embodiments, converting the time domain signal includesconverting the time domain signal determined at 506 into a spatialdomain signal that translates the time delay represented in the timedomain signal to a distance traveled by the received signal in thepropagating medium due to the touch input disturbance. For example, atime domain signal that can be graphed as time within the received andconverted signal vs. a measure of similarity is converted to a spatialdomain signal that can be graphed as distance traveled in the medium vs.the measure of similarity.

In some embodiments, performing the conversion includes performingdispersion compensation. For example, using a dispersion curvecharacterizing the propagating medium, time values of the time domainsignal are translated to distance values in the spatial domain signal.In some embodiments, a resulting curve of the time domain signalrepresenting a distance likely traveled by the received signal due to atouch input disturbance is narrower than the curve contained in the timedomain signal representing the time delay likely caused by the touchinput disturbance. In some embodiments, the time domain signal isfiltered using a match filter to reduce undesired noise in the signal.For example, using a template signal that represents an ideal shape of aspatial domain signal, the converted spatial domain signal is matchfiltered (e.g., spatial domain signal correlated with the templatesignal) to reduce noise not contained in the bandwidth of the templatesignal. The template signal may be predetermined (e.g., determined at306 of FIG. 3) by applying a sample touch input to a touch input surfaceand measuring a received signal.

At 510, the spatial domain signal is compared with one or more expectedsignals to determine a touch input captured by the received signal. Insome embodiments, comparing the spatial domain signal with the expectedsignal includes generating expected signals that would result if a touchcontact was received at hypothesis locations. For example, a hypothesisset of one or more locations (e.g., single touch or multi-touchlocations) where a touch input might have been received on a touch inputsurface is determined, and an expected spatial domain signal that wouldresult at 508 if touch contacts were received at the hypothesis set oflocation(s) is determined (e.g., determined for a specific transmitterand sensor pair using data measured at 306 of FIG. 3). The expectedspatial domain signal may be compared with the actual spatial signaldetermined at 508. The hypothesis set of one or more locations may beone of a plurality of hypothesis sets of locations (e.g., exhaustive setof possible touch contact locations on a coordinate grid dividing atouch input surface).

The proximity of location(s) of a hypothesis set to the actual touchcontact location(s) captured by the received signal may be proportionalto the degree of similarity between the expected signal of thehypothesis set and the spatial signal determined at 508. In someembodiments, signals received by sensors (e.g., sensors 112, 114, 116,and 118 of FIG. 1) from transmitters (e.g., transmitters 104, 106, 108,and 110 of FIG. 1) are compared with corresponding expected signals foreach sensor/transmitter pair to select a hypothesis set that minimizesthe overall difference between all respective detected and expectedsignals. In some embodiments, once a hypothesis set is selected, anothercomparison between the determined spatial domain signals and one or morenew expected signals associated with finer resolution hypothesis touchlocation(s) (e.g., locations on a new coordinate grid with moreresolution than the coordinate grid used by the selected hypothesis set)near the location(s) of the selected hypothesis set is determined.

FIG. 6 is a flow chart illustrating an embodiment of a process fordetermining time domain signal capturing of a disturbance caused by atouch input. In some embodiments, the process of FIG. 6 is included in506 of FIG. 5. The process of FIG. 6 may be implemented in touchdetector 120 of FIG. 1 and/or touch detector 202 of FIG. 2.

At 602, a first correlation is performed. In some embodiments,performing the first correlation includes correlating a received signal(e.g., resulting converted signal determined at 504 of FIG. 5) with areference signal. Performing the correlation includes cross-correlatingor determining a convolution (e.g., interferometry) of the convertedsignal with a reference signal to measure the similarity of the twosignals as a time-lag is applied to one of the signals. By performingthe correlation, the location of a portion of the converted signal thatmost corresponds to the reference signal can be located. For example, aresult of the correlation can be plotted as a graph of time within thereceived and converted signal (e.g., time-lag between the signals) vs. ameasure of similarity. The associated time value of the largest value ofthe measure of similarity corresponds to the location where the twosignals most correspond. By comparing this measured time value against areference time value (e.g., at 306 of FIG. 3) not associated with atouch indication disturbance, a time delay/offset or phase differencecaused on the received signal due to a disturbance caused by a touchinput can be determined. In some embodiments, by measuring theamplitude/intensity difference of the received signal at the determinedtime vs. a reference signal, a force associated with a touch indicationmay be determined. In some embodiments, the reference signal isdetermined based at least in part on the signal that was propagatedthrough a medium (e.g., based on a source pseudorandom binary sequencesignal that was propagated). In some embodiments, the reference signalis at least in part determined using information determined duringcalibration at 306 of FIG. 3. The reference signal may be chosen so thatcalculations required to be performed during the correlation may besimplified. For example, the reference signal is a simplified referencesignal that can be used to efficiently correlate the reference signalover a relatively large time difference (e.g., lag-time) between thereceived and converted signal and the reference signal.

At 604, a second correlation is performed based on a result of the firstcorrelation. Performing the second correlation includes correlating(e.g., cross-correlation or convolution similar to step 602) a receivedsignal (e.g., resulting converted signal determined at 504 of FIG. 5)with a second reference signal. The second reference signal is a morecomplex/detailed (e.g., more computationally intensive) reference signalas compared to the first reference signal used in 602. In someembodiments, the second correlation is performed because using thesecond reference signal in 602 may be too computationally intensive forthe time interval required to be correlated in 602. Performing thesecond correlation based on the result of the first correlation includesusing one or more time values determined as a result of the firstcorrelation. For example, using a result of the first correlation, arange of likely time values (e.g., time-lag) that most correlate betweenthe received signal and the first reference signal is determined and thesecond correlation is performed using the second reference signal onlyacross the determined range of time values to fine tune and determinethe time value that most corresponds to where the second referencesignal (and, by association, also the first reference signal) matchedthe received signal. In various embodiments, the first and secondcorrelations have been used to determine a portion within the receivedsignal that corresponds to a disturbance caused by a touch input at alocation on a surface of a propagating medium. In other embodiments, thesecond correlation is optional. For example, only a single correlationstep is performed. Any number of levels of correlations may be performedin other embodiments.

FIG. 7 is a flow chart illustrating an embodiment of a process comparingspatial domain signals with one or more expected signals to determinetouch contact location(s) of a touch input. In some embodiments, theprocess of FIG. 7 is included in 510 of FIG. 5. The process of FIG. 7may be implemented in touch detector 120 of FIG. 1 and/or touch detector202 of FIG. 2.

At 702, a hypothesis of a number of simultaneous touch contacts includedin a touch input is determined. In some embodiments, when detecting alocation of a touch contact, the number of simultaneous contacts beingmade to a touch input surface (e.g., surface of medium 102 of FIG. 1) isdesired to be determined. For example, it is desired to determine thenumber of fingers touching a touch input surface (e.g., single touch ormulti-touch). In some embodiments, in order to determine the number ofsimultaneous touch contacts, the hypothesis number is determined and thehypothesis number is tested to determine whether the hypothesis numberis correct. In some embodiments, the hypothesis number is initiallydetermined as zero (e.g., associated with no touch input beingprovided). In some embodiments, determining the hypothesis number ofsimultaneous touch contacts includes initializing the hypothesis numberto be a previously determined number of touch contacts. For example, aprevious execution of the process of FIG. 7 determined that two touchcontacts are being provided simultaneously and the hypothesis number isset as two. In some embodiments, determining the hypothesis numberincludes incrementing or decrementing a previously determined hypothesisnumber of touch contacts. For example, a previously determinedhypothesis number is 2 and determining the hypothesis number includesincrementing the previously determined number and determining thehypothesis number as the incremented number (i.e., 3). In someembodiments, each time a new hypothesis number is determined, apreviously determined hypothesis number is iteratively incrementedand/or decremented unless a threshold maximum (e.g., 10) and/orthreshold minimum (e.g., 0) value has been reached.

At 704, one or more hypothesis sets of one or more touch contactlocations associated with the hypothesis number of simultaneous touchcontacts are determined. In some embodiments, it is desired to determinethe coordinate locations of fingers touching a touch input surface. Insome embodiments, in order to determine the touch contact locations, oneor more hypothesis sets are determined on potential location(s) of touchcontact(s) and each hypothesis set is tested to determine whichhypothesis set is most consistent with a detected data.

In some embodiments, determining the hypothesis set of potential touchcontact locations includes dividing a touch input surface into aconstrained number of points (e.g., divide into a coordinate grid) wherea touch contact may be detected. For example, in order to initiallyconstrain the number of hypothesis sets to be tested, the touch inputsurface is divided into a coordinate grid with relatively large spacingbetween the possible coordinates. Each hypothesis set includes a numberof location identifiers (e.g., location coordinates) that match thehypothesis number determined in 702. For example, if two was determinedto be the hypothesis number in 702, each hypothesis set includes twolocation coordinates on the determined coordinate grid that correspondto potential locations of touch contacts of a received touch input. Insome embodiments, determining the one or more hypothesis sets includesdetermining exhaustive hypothesis sets that exhaustively cover allpossible touch contact location combinations on the determinedcoordinate grid for the determined hypothesis number of simultaneoustouch contacts. In some embodiments, a previously determined touchcontact location(s) of a previous determined touch input is initializedas the touch contact location(s) of a hypothesis set.

At 706, a selected hypothesis set is selected among the one or morehypothesis sets of touch contact location(s) as best corresponding totouch contact locations captured by detected signal(s). In someembodiments, one or more propagated active signals (e.g., signaltransmitted at 402 of FIG. 4) that have been disturbed by a touch inputon a touch input surface are received (e.g., received at 404 of FIG. 4)by one or more sensors such as sensors 112, 114, 116, and 118 of FIG. 1.Each active signal transmitted from each transmitter (e.g., differentactive signals each transmitted by transmitters 104, 106, 108, and 110of FIG. 1) is received by each sensor (e.g., sensors 112, 114, 116, and118 of FIG. 1) and may be processed to determine a detected signal(e.g., spatial domain signal determined at 508 of FIG. 5) thatcharacterizes a signal disturbance caused by the touch input. In someembodiments, for each hypothesis set of touch contact location(s), anexpected signal is determined for each signal expected to be received atone or more sensors. The expected signal may be determined using apredetermined function that utilizes one or more predeterminedcoefficients (e.g., coefficient determined for a specific sensor and/ortransmitter transmitting a signal to be received at the sensor) and thecorresponding hypothesis set of touch contact location(s). The expectedsignal(s) may be compared with corresponding detected signal(s) todetermine an indicator of a difference between all the expectedsignal(s) for a specific hypothesis set and the corresponding detectedsignals. By comparing the indicators for each of the one or morehypothesis sets, the selected hypothesis set may be selected (e.g.,hypothesis set with the smallest indicated difference is selected).

At 708, it is determined whether additional optimization is to beperformed. In some embodiments, determining whether additionaloptimization is to be performed includes determining whether any newhypothesis set(s) of touch contact location(s) should be analyzed inorder to attempt to determine a better selected hypothesis set. Forexample, a first execution of step 706 utilizes hypothesis setsdetermined using locations on a larger distance increment coordinategrid overlaid on a touch input surface and additional optimization is tobe performed using new hypothesis sets that include locations from acoordinate grid with smaller distance increments. Additionaloptimizations may be performed any number of times. In some embodiments,the number of times additional optimizations are performed ispredetermined. In some embodiments, the number of times additionaloptimizations are performed is dynamically determined. For example,additional optimizations are performed until a comparison thresholdindicator value for the selected hypothesis set is reached and/or acomparison indicator for the selected hypothesis does not improve by athreshold amount. In some embodiments, for each optimization iteration,optimization may be performed for only a single touch contact locationof the selected hypothesis set and other touch contact locations of theselected hypothesis may be optimized in a subsequent iteration ofoptimization.

If at 708 it is determined that additional optimization should beperformed, at 710, one or more new hypothesis sets of one or more touchcontact locations associated with the hypothesis number of the touchcontacts are determined based on the selected hypothesis set. In someembodiments, determining the new hypothesis sets includes determininglocation points (e.g., more detailed resolution locations on acoordinate grid with smaller distance increments) near one of the touchcontact locations of the selected hypothesis set in an attempt to refinethe one of the touch contact locations of the selected hypothesis set.The new hypothesis sets may each include one of the newly determinedlocation points, and the other touch contact location(s), if any, of anew hypothesis set may be the same locations as the previously selectedhypothesis set. In some embodiments, the new hypothesis sets may attemptto refine all touch contact locations of the selected hypothesis set.The process proceeds back to 706, whether or not a newly selectedhypothesis set (e.g., if previously selected hypothesis set still bestcorresponds to detected signal(s), the previously selected hypothesisset is retained as the new selected hypothesis set) is selected amongthe newly determined hypothesis sets of touch contact location(s).

If at 708 it is determined that additional optimization should not beperformed, at 712, it is determined whether a threshold has beenreached. In some embodiments, determining whether a threshold has beenreached includes determining whether the determined hypothesis number ofcontact points should be modified to test whether a different number ofcontact points has been received for the touch input. In someembodiments, determining whether the threshold has been reached includesdetermining whether a comparison threshold indicator value for theselected hypothesis set has been reached and/or a comparison indicatorfor the selected hypothesis did not improve by a threshold amount sincea previous determination of a comparison indicator for a previouslyselected hypothesis set. In some embodiments, determining whether thethreshold has been reached includes determining whether a thresholdamount of energy still remains in a detected signal after accounting forthe expected signal of the selected hypothesis set. For example, athreshold amount of energy still remains if an additional touch contactneeds be included in the selected hypothesis set.

If at 712, it is determined that the threshold has not been reached, theprocess continues to 702 where a new hypothesis number of touch inputsis determined. The new hypothesis number may be based on the previoushypothesis number. For example, the previous hypothesis number isincremented by one as the new hypothesis number.

If at 712, it is determined that the threshold has been reached, at 714,the selected hypothesis set is indicated as the detected location(s) oftouch contact(s) of the touch input. For example, a locationcoordinate(s) of a touch contact(s) is provided.

FIG. 8 is a flowchart illustrating an embodiment of a process forselecting a selected hypothesis set of touch contact location(s). Insome embodiments, the process of FIG. 8 is included in 706 of FIG. 7.The process of FIG. 8 may be implemented in touch detector 120 of FIG. 1and/or touch detector 202 of FIG. 2.

At 802, for each hypothesis set (e.g., determined at 704 of FIG. 7), anexpected signal that would result if a touch contact was received at thecontact location(s) of the hypothesis set is determined for eachdetected signal and for each touch contact location of the hypothesisset. In some embodiments, determining the expected signal includes usinga function and one or more function coefficients to generate/simulatethe expected signal. The function and/or one or more functioncoefficients may be predetermined (e.g., determined at 306 of FIG. 3)and/or dynamically determined (e.g., determined based on one or moreprovided touch contact locations). In some embodiments, the functionand/or one or more function coefficients may be determined/selectedspecifically for a particular transmitter and/or sensor of a detectedsignal. For example, the expected signal is to be compared to a detectedsignal and the expected signal is generated using a function coefficientdetermined specifically for the pair of transmitter and sensor of thedetected signal. In some embodiments, the function and/or one or morefunction coefficients may be dynamically determined.

In some embodiments, in the event the hypothesis set includes more thanone touch contact location (e.g., multi-touch input), expected signalfor each individual touch contact location is determined separately andcombined together. For example, an expected signal that would result ifa touch contact was provided at a single touch contact location is addedwith other single touch contact expected signals (e.g., effects frommultiple simultaneous touch contacts add linearly) to generate a singleexpected signal that would result if the touch contacts of the addedsignals were provided simultaneously.

In some embodiments, the expected signal for a single touch contact ismodeled as the function:

C*P(x−d)

where C is a function coefficient (e.g., complex coefficient) and P(x)is a function and d is the total path distance between a transmitter(e.g., transmitter of a signal desired to be simulated) to a touch inputlocation and between the touch input location and a sensor (e.g.,receiver of the signal desired to be simulated).

In some embodiments, the expected signal for one or more touch contactsis modeled as the function:

Σ_(j=1) ^(N) C _(j) P(x−d _(j))

where j indicates which touch contact and N is the number of totalsimultaneous touch contacts being modeled (e.g., hypothesis numberdetermined at 702 of FIG. 7).

At 804, corresponding detected signals are compared with correspondingexpected signals. In some embodiments, the detected signals includespatial domain signals determined at 508 of FIG. 5. In some embodiments,comparing the signals includes determining a mean square error betweenthe signals. In some embodiments, comparing the signals includesdetermining a cost function that indicates the similarity/differencebetween the signals. In some embodiments, the cost function for ahypothesis set (e.g., hypothesis set determined at 704 of FIG. 7)analyzed for a single transmitter/sensor pair is modeled as:

ε(r _(x) ,t _(x))=|q(x)−Σ_(j=1) ^(N) C _(j) P(x−d _(j))|²

where ε(r_(x), t_(x)) is the cost function, q(x) is the detected signal,and Σ_(j=1) ^(N)C_(j)P(x−d_(j)) is the expected signal. In someembodiments, the global cost function for a hypothesis set analyzed formore than one (e.g., all) transmitter/sensor pairs is modeled as:

ε=Σ_(i=1) ^(z)ε(r _(x) ,t _(x))_(i)

where ε is the global cost function, Z is the number of totaltransmitter/sensor pairs, i indicates the particular transmitter/sensorpair, and ε(r_(x), t_(x))_(i) is the cost function of the particulartransmitter/sensor pair.

At 806, a selected hypothesis set of touch contact location(s) isselected among the one or more hypothesis sets of touch contactlocation(s) as best corresponding to detected signal(s). In someembodiments, the selected hypothesis set is selected among hypothesissets determined at 704 or 710 of FIG. 7. In some embodiments, selectingthe selected hypothesis set includes determining the global costfunction (e.g., function ε described above) for each hypothesis set inthe group of hypothesis sets and selecting the hypothesis set thatresults in the smallest global cost function value.

Although the foregoing embodiments have been described in some detailfor purposes of clarity of understanding, the invention is not limitedto the details provided. There are many alternative ways of implementingthe invention. The disclosed embodiments are illustrative and notrestrictive.

What is claimed is:
 1. A system for detecting a location of a touchinput on a surface of a propagating medium, including: a transmittercoupled to the propagating medium and configured to emit a signal,wherein the signal has been allowed to propagate through the propagatingmedium and the propagating medium is a touch input medium made of atleast one of the following: glass, plastic, metal, or semiconductor; areceiver coupled to the propagating medium, wherein the receiver isconfigured to receive a touch input affected version of the signal to atleast in part detect the location of the touch input as indicated by aneffect of the touch input on the signal; and a signal generatorconfigured to perform spectral control including by using at least awindowing function or an amplitude modulation to generate anintermediary signal that is modulated to a carrier frequency to generatethe emitted signal and selecting the carrier frequency such that theemitted signal is an ultrasonic signal.
 2. The system of claim 1,wherein performing spectral control includes controlling a frequencyrange of the signal.
 3. The system of claim 1, wherein performingspectral control includes using a Hanning window function.
 4. The systemof claim 1, wherein performing spectral control includes using a raisedcosine window function.
 5. The system of claim 1, wherein performingspectral control includes attempting to only excite a select propagationmode of the propagating medium.
 6. The system of claim 1, whereinperforming spectral control includes attempting to avoid exciting aselect propagation mode of the propagating medium.
 7. The system ofclaim 1, wherein performing spectral control includes attempting to onlyexcite A0 propagation mode of the propagating medium.
 8. The system ofclaim 1, wherein performing spectral control includes performingsignal-sideband modulation.
 9. The system of claim 1, wherein performingspectral control includes performing vestigial sideband modulation. 10.The system of claim 1, wherein the signal utilizes double-sidebandmodulation.
 11. The system of claim 1, wherein performing spectralcontrol includes utilizing the windowing function and the amplitudemodulation.
 12. The system of claim 1, wherein performing spectralcontrol includes utilizing the windowing function and the type ofwindowing function to be utilized is determined based at least in parton a property of the propagation medium.
 13. The system of claim 1,wherein performing spectral control includes utilizing the windowingfunction and a parameter of windowing function to be utilized isdetermined based at least in part on a property of the propagationmedium.
 14. The system of claim 1, wherein performing spectral controlincludes utilizing the windowing function and a parameter of windowingfunction to be utilized is determined based at least in part on aproperty of the transmitter.
 15. A method for detecting a location of atouch input on a surface of a propagating medium including: emittingfrom a transmitter coupled to the propagating medium a signal, whereinthe signal has been allowed to propagate through the propagating mediumand the propagating medium is a touch input medium made of at least oneof the following: glass, plastic, metal, or semiconductor; receiving thesignal using a receiver coupled to the propagating medium, wherein thereceiver is configured to receive a touch input affected version of thesignal to at least in part detect the location of the touch input asindicated by an effect of the touch input on the signal; and performingspectral control by a signal generator using at least a windowingfunction or an amplitude modulation to generate an intermediary signalthat is modulated to a carrier frequency to generate the emitted signaland selecting the carrier frequency such that the emitted signal is anultrasonic signal.
 16. The method of claim 15, wherein performingspectral control includes using a Hanning window function.
 17. Themethod of claim 15, wherein performing spectral control includes using araised cosine window function.
 18. The method of claim 15, whereinperforming spectral control includes performing signal-sidebandmodulation.
 19. The method of claim 15, wherein performing spectralcontrol includes performing vestigial sideband modulation.
 20. Acomputer program product for detecting a location of a touch input on asurface of a propagating medium, the computer program product beingembodied in a non-transitory computer readable storage medium andcomprising computer instructions for: emitting from a transmittercoupled to the propagating medium a signal, wherein the signal has beenallowed to propagate through the propagating medium and the propagatingmedium is a touch input medium made of at least one of the following:glass, plastic, metal, or semiconductor; receiving the signal using areceiver coupled to the propagating medium, wherein the receiver isconfigured to receive a touch input affected version of the signal to atleast in part detect the location of the touch input as indicated by aneffect of the touch input on the signal; and performing spectral controlby a signal generator using at least a windowing function or anamplitude modulation to generate an intermediary signal that ismodulated to a carrier frequency to generate the emitted signal andselecting the carrier frequency such that the emitted signal is anultrasonic signal.